﻿using Magicodes.ExporterAndImporter.Core;
using Org.BouncyCastle.Crypto;
using System;
using System.Collections.Generic;
using System.Text;

namespace NP.BPMReportPlatform.Reports.MaterialCheckPlanChange.Dtos
{
    public class MaterialCheckPlanChangeInput : PagedAndSortedRequestDto
    {
        /// <summary>
        /// 是否查询全部
        /// </summary>
        public bool IsQueryAll { get; set; }
        /// <summary>
        /// 流程实例编号
        /// </summary>
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 创建者
        /// </summary>
        public string AddUserName { get; set; }

        /// <summary>
        /// 单据状态
        /// </summary>
        public List<string> OrderStatus { get; set; }

        /// <summary>
        /// 制单日期（开始节点）
        /// </summary>
        public DateTime? StartCreationTime { get; set; }

        /// <summary>
        /// 制单日期（结束节点）
        /// </summary>
        public DateTime? EndCreationTime { get; set; }

        public string Mode { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        public string MaterialCode { get; set; }

        /// <summary>
        /// 物料类型
        /// </summary>
        public string MaterialType { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        public string MaterialName { get; set; }

        public string FactoryCode { get; set; }

        /// <summary>
        /// MRP代码
        /// </summary>
        public string DISPO { get; set; }

        /// <summary>
        /// 项目
        /// </summary>
        public string Item { get; set; }
    }

    public class MaterialCheckPlanChangeOutput
    {
        [ExporterHeader(IsIgnore = true)]
        public Guid ChildId { get; set; }

        /// <summary>
        /// 流程实例编号
        /// </summary>
        [ExporterHeader("流程编号")]
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 申请时间
        /// </summary>
        [ExporterHeader(IsIgnore = true)]
        public DateTime? ProcessStartTime { get; set; }
        [ExporterHeader("申请时间")]
        public string ProcessStartTimeStr { get; set; }

        /// <summary>
        /// 添加用户名称
        /// </summary>
        [ExporterHeader("申请人")]
        public string ProcessStartUserName { get; set; }

        /// <summary>
        /// 流程状态
        /// </summary>
        [ExporterHeader("流程状态")]
        public string OrderStatus { get; set; }

        /// <summary>
        /// 单据详情链接
        /// </summary>
        [ExporterHeader(IsIgnore = true)]
        public string Url { get; set; }

        /// <summary>
        /// 模式 1 单个模式 2 批量模式
        /// </summary>
        [ExporterHeader(IsIgnore = true)]
        public string Mode { get; set; }
        [ExporterHeader("模式")]
        public string ModeStr { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        [ExporterHeader("物料编码")]
        public string MaterialCode { get; set; }

        /// <summary>
        /// 物料类型
        /// </summary>
        [ExporterHeader("物料类型")]
        public string MaterialType { get; set; }

        /// <summary>
        /// 物料类型描述
        /// </summary>
        [ExporterHeader("物料类型描述")]
        public string MaterialTypeDesc { get; set; }

        /// <summary>
        /// 物料名称
        /// </summary>
        [ExporterHeader("物料名称")]
        public string MaterialName { get; set; }

        /// <summary>
        /// 工厂代码
        /// </summary>
        [ExporterHeader("工厂代码")]
        public string FactoryCode { get; set; }

        /// <summary>
        /// MRP代码
        /// </summary>
        [ExporterHeader("MRP代码")]
        public string DISPO { get; set; }

        /// <summary>
        /// MRP描述
        /// </summary>
        [ExporterHeader("MRP描述")]
        public string DSNAM { get; set; }

        /// <summary>
        /// 项目
        /// </summary>
        [ExporterHeader("项目")]
        public string Item { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        [ExporterHeader("单位")]
        public string Unit { get; set; }

        /// <summary>
        /// 检测条件
        /// </summary>
        [ExporterHeader("检测条件")]
        public string CheckCondition { get; set; }

        /// <summary>
        /// 目标值
        /// </summary>
        [ExporterHeader("目标值")]
        public string CheckStandard { get; set; }

        /// <summary>
        /// 最小值
        /// </summary>
        [ExporterHeader("最小值")]
        public string Mininum { get; set; }

        /// <summary>
        /// 最大值
        /// </summary>
        [ExporterHeader("最大值")]
        public string Maxnum { get; set; }

        /// <summary>
        /// 方法
        /// </summary>
        [ExporterHeader("方法")]
        public string CheckMethod { get; set; }

        /// <summary>
        /// 检测频次
        /// </summary>
        [ExporterHeader("检测频次")]
        public string CheckFrequency { get; set; }

        /// <summary>
        /// 申请项目变更
        /// </summary>
        [ExporterHeader("申请项目变更")]
        public string IsRquired { get; set; }

        /// <summary>
        /// 变更内容
        /// </summary>
        [ExporterHeader("变更内容")]
        public string ChangeContent { get; set; }

        /// <summary>
        /// 变更理由
        /// </summary>
        [ExporterHeader("变更理由")]
        public string ChangeReason { get; set; }
    }
}
